home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAMRADIO / LOGBOOK.ZIP / DXCCMB.PRG < prev    next >
Text File  |  1985-10-29  |  3KB  |  115 lines

  1. *MBDXCC AUTOMATICALLY UPDATES DXCC RECORDS FROM LOG DATABASE
  2. * COPYRIGHT JOE KASSER G3ZCZ 1985
  3.  
  4. STORE 0 TO worked
  5. STORE 0 TO qsled
  6.  
  7. SELECT PRIMARY
  8. USE &logbook INDEX &logbook
  9.  
  10. SELECT SECONDARY
  11. USE &dxcc
  12.  
  13. DO WHILE .NOT. EOF
  14.    ? px
  15.    IF dstate = 'Q'
  16.       * ALREADY IN DXCC RECORD, IGNORE REST'
  17.       STORE F TO qslflag
  18.       STORE qsled + 1 TO qsled
  19.    ELSE
  20.       STORE 0 TO workedflag
  21.       STORE T TO qslflag
  22.       * NOT WORKED YET, SO TRY LOG FOR UPDATE'
  23.       STORE TRIM(px) TO prefix
  24.       SELECT PRIMARY
  25.       FIND &prefix
  26.       IF # = 0
  27.          * NO FIND, TRY ALTERNATE PREFIX
  28.          SELECT SECONDARY
  29.          IF $(px1,1,1) = ' '
  30.             * NO ALTERNATE PREFIX, GO TO NEXT PREFIX'
  31.          ELSE
  32.             STORE TRIM(px1) TO prefix
  33.             SELECT PRIMARY
  34.             FIND &prefix
  35.             IF # = 0
  36.                *NO FIND AGAIN, GO TO NEXT PREFIX  '
  37.             ELSE
  38.                * FOUND SOMETHING FOR PX1  '
  39.                DO WHILE call = prefix .AND. qslflag
  40.                   IF qslrx = 'R' .and. band = thisband
  41.                      *FOUND A QSL'
  42.                      STORE F TO qslflag
  43.                      SELECT SECONDARY
  44.                      REPLACE dcall WITH call
  45.                      REPLACE ddate WITH date
  46.                      REPLACE dtime WITH time
  47.                      REPLACE dmode WITH mode
  48.                      REPLACE dband WITH band
  49.                      STORE qsled + 1 TO qsled
  50.                      REPLACE dstate WITH 'Q'
  51.                      SKIP -1
  52.                   ELSE
  53.                      IF workedflag = 0
  54.                         IF band = thisband
  55.                            STORE # TO workedflag
  56.                         ENDIF
  57.                      ENDIF
  58.                   ENDIF
  59.                   SKIP
  60.                ENDDO
  61.             ENDIF
  62.          ENDIF
  63.       ELSE
  64.          *FOUND SOMETHING FOR PX, see IF its qsled'
  65.          DO WHILE call = prefix .AND. qslflag
  66.             IF qslrx = 'R'  .and. band =  thisband
  67.                STORE F TO qslflag
  68.                *FOUND A QSL'
  69.                SELECT SECONDARY
  70.                REPLACE dstate WITH 'Q'
  71.                STORE qsled + 1 TO qsled
  72.                REPLACE dcall WITH call
  73.                REPLACE ddate WITH date
  74.                REPLACE dtime WITH time
  75.                REPLACE dmode WITH mode
  76.                REPLACE dband WITH band
  77.                SKIP -1
  78.             ELSE
  79.                IF workedflag = 0
  80.                   IF band = thisband
  81.                      STORE # TO workedflag
  82.                   ENDIF
  83.                ENDIF
  84.             ENDIF
  85.             SKIP
  86.          ENDDO
  87.       ENDIF
  88.    ENDIF
  89.    SELECT SECONDARY
  90.    IF qslflag
  91.       IF workedflag = 0
  92.          * PREFIX WAS NOT WORKED EITHER
  93.       ELSE
  94.          SELECT PRIMARY
  95.          GOTO  workedflag
  96.          STORE worked + 1 TO worked
  97.          SELECT SECONDARY
  98.          REPLACE dcall WITH call
  99.          REPLACE ddate WITH date
  100.          REPLACE dtime WITH time
  101.          REPLACE dmode WITH mode
  102.          REPLACE dband WITH band
  103.          REPLACE dstate WITH 'W'
  104.       ENDIF
  105.    ENDIF
  106.       ?? dcall,dband,dstate,qsled,worked
  107.    SKIP
  108. ENDDO
  109. SELECT SECONDARY
  110. USE
  111. SELECT PRIMARY
  112. USE
  113. RELEASE worked,workedflag,qsled,prefix,qslflag
  114. RETURN
  115.